home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / apache / bin / apr-config.pl < prev    next >
Perl Script  |  2005-05-30  |  6KB  |  188 lines

  1. #!c:\xampp\perl\bin\perl.exe
  2. use strict;
  3. use warnings;
  4. use Getopt::Long;
  5. use File::Spec::Functions qw(catfile catdir);
  6.  
  7. # ====================================================================
  8. #
  9. #  Copyright 2003-2004  The Apache Software Foundation
  10. #
  11. #  Licensed under the Apache License, Version 2.0 (the "License");
  12. #  you may not use this file except in compliance with the License.
  13. #  You may obtain a copy of the License at
  14. #
  15. #      http://www.apache.org/licenses/LICENSE-2.0
  16. #
  17. #  Unless required by applicable law or agreed to in writing, software
  18. #  distributed under the License is distributed on an "AS IS" BASIS,
  19. #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  20. #  See the License for the specific language governing permissions and
  21. #  limitations under the License.
  22. # ====================================================================
  23. #
  24. # APR script designed to allow easy command line access to APR configuration
  25. # parameters.
  26.  
  27.  
  28. sub usage {
  29.     print << 'EOU';
  30. Usage: apr-config [OPTION]
  31.  
  32. Known values for OPTION are:
  33.   --prefix[=DIR]    change prefix to DIR
  34.   --bindir          print location where binaries are installed
  35.   --includedir      print location where headers are installed
  36.   --libdir          print location where libraries are installed
  37.   --cc              print C compiler name
  38.   --cpp             print C preprocessor name and any required options
  39.   --ld              print C linker name
  40.   --cflags          print C compiler flags
  41.   --cppflags        print cpp flags
  42.   --includes        print include information
  43.   --ldflags         print linker flags
  44.   --libs            print additional libraries to link against
  45.   --srcdir          print APR source directory
  46.   --installbuilddir print APR build helper directory
  47.   --link-ld         print link switch(es) for linking to APR
  48.   --apr-so-ext      print the extensions of shared objects on this platform
  49.   --apr-lib-file    print the name of the apr lib
  50.   --version         print the APR version as a dotted triple
  51.   --help            print this help
  52.  
  53. When linking, an application should do something like:
  54.   APR_LIBS="\`apr-config --link-ld --libs\`"
  55.  
  56. An application should use the results of --cflags, --cppflags, --includes,
  57. and --ldflags in their build process.
  58.  
  59. EOU
  60.     exit(1);
  61. }
  62.  
  63. my ${CC} = q[cl];
  64. my ${LIBS} = q[];
  65. my ${APR_SO_EXT} = q[dll];
  66. my ${APR_DOTTED_VERSION} = q[0.9.6];
  67. my ${installbuilddir} = q[O:\apache\build];
  68. my ${APR_MAJOR_VERSION} = q[0];
  69. my ${bindir} = q[O:\apache\bin];
  70. my ${LD} = q[link];
  71. my ${CPP} = q[cl -nologo -E];
  72. my ${APR_SOURCE_DIR} = q[];
  73. my ${includedir} = q[O:\apache\include];
  74. my ${LDFLAGS} = q[ kernel32.lib /nologo /subsystem:windows /dll /machine:I386 ];
  75. my ${exec_prefix} = q[O:\apache];
  76. my ${APR_LIBNAME} = q[libapr.lib];
  77. my ${datadir} = q[O:\apache];
  78. my ${libdir} = q[O:\apache\lib];
  79. my ${CFLAGS} = q[ /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG ];
  80. my ${APR_LIB_TARGET} = q[];
  81. my ${SHELL} = q[D:\WINNT\system32\cmd.exe];
  82. my ${CPPFLAGS} = q[];
  83. my ${EXTRA_INCLUDES} = q[];
  84. my ${prefix} = q[O:\apache];
  85.  
  86. my %opts = ();
  87. GetOptions(\%opts,
  88.            'prefix:s',
  89.            'bindir',
  90.            'includedir',
  91.            'libdir',
  92.            'cc',
  93.            'cpp',
  94.            'ld',
  95.            'cflags',
  96.            'cppflags',
  97.            'includes',
  98.            'ldflags',
  99.            'libs',
  100.            'srcdir',
  101.            'installbuilddir',
  102.            'link-ld',
  103.            'apr-so-ext',
  104.            'apr-lib-file',
  105.            'version',
  106.            'help'
  107.           ) or usage();
  108.  
  109. usage() if ($opts{help} or not %opts);
  110.  
  111. if (exists $opts{prefix} and $opts{prefix} eq "") {
  112.     print qq{$prefix\n};
  113.     exit(0);
  114. }
  115. my $user_prefix = defined $opts{prefix} ? $opts{prefix} : '';
  116. my %user_dir;
  117. if ($user_prefix) {
  118.     foreach (qw(lib bin include build)) {
  119.         $user_dir{$_} = catdir $user_prefix, $_;
  120.     }
  121. }
  122. my $flags = '';
  123.  
  124. SWITCH : {
  125.     local $\ = "\n";
  126.     $opts{bindir} and do {
  127.         print $user_prefix ? $user_dir{bin} : $bindir;
  128.         last SWITCH;
  129.     };
  130.     $opts{includedir} and do {
  131.         print $user_prefix ? $user_dir{include} : $includedir;
  132.         last SWITCH;
  133.     };
  134.     $opts{libdir} and do {
  135.         print $user_prefix ? $user_dir{lib} : $libdir;
  136.         last SWITCH;
  137.     };
  138.     $opts{installbuilddir} and do {
  139.         print $user_prefix ? $user_dir{build} : $installbuilddir;
  140.         last SWITCH;
  141.     };
  142.     $opts{srcdir} and do {
  143.         print $APR_SOURCE_DIR;
  144.         last SWITCH;
  145.     };
  146.     $opts{cc} and do {
  147.         print $CC;
  148.         last SWITCH;
  149.     };
  150.     $opts{cpp} and do {
  151.         print $CPP;
  152.         last SWITCH;
  153.     };
  154.     $opts{ld} and do {
  155.         print $LD;
  156.         last SWITCH;
  157.     };
  158.     $opts{cflags} and $flags .= " $CFLAGS ";
  159.     $opts{cppflags} and $flags .= " $CPPFLAGS ";
  160.     $opts{includes} and do {
  161.         my $inc = $user_prefix ? $user_dir{include} : $includedir;
  162.         $flags .= qq{ /I"$inc" $EXTRA_INCLUDES };
  163.     };
  164.     $opts{ldflags} and $flags .= " $LDFLAGS ";
  165.     $opts{libs} and $flags .= " $LIBS ";
  166.     $opts{'link-ld'} and do {
  167.         my $libpath = $user_prefix ? $user_dir{lib} : $libdir;
  168.         $flags .= qq{ /libpath:"$libpath" $APR_LIBNAME };
  169.     };
  170.     $opts{'apr-so-ext'} and do {
  171.         print $APR_SO_EXT;
  172.         last SWITCH;
  173.     };
  174.     $opts{'apr-lib-file'} and do {
  175.         my $full_aprlib = $user_prefix ? 
  176.             (catfile $user_dir{lib}, $APR_LIBNAME) :
  177.                 (catfile $libdir, $APR_LIBNAME);
  178.         print $full_aprlib;
  179.         last SWITCH;
  180.     };
  181.     $opts{version} and do {
  182.         print $APR_DOTTED_VERSION;
  183.         last SWITCH;
  184.     };
  185.     print $flags if $flags;
  186. }
  187. exit(0);
  188.